/**
 * 选择排序
 * 从剩余数组中选择一个最小值，排在最左边
 */

/**
 * 交换两个元素的值
 */
void swap(int *a,int *b){
    int temp=(*a);
    (*a)=*b;
    (*b)=temp;
}
/**
 * @param arr  待排序的数组
 * @param n 数组长度
 */
void selectSort(int arr[],int n){
    for(int i=0;i<n-1;i++){
        int min=i;//min是最小值下标
        for(int j=i+1;j<n;j++){
            if(arr[j]<arr[min]) min =j;
            if(min!=i) swap(&arr[i],&arr[min]);
        }
    }
}
#include<stdio.h>
int main(int argc,char* argv[]){
    int n=5;
    int arr[]={3,2,1,4,5,};
    selectSort(arr,n);
    for(int i=0;i<n;i++){
        printf("%d ",arr[i]);
    }

    return 0;
}